home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 19 / CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso / CUCD / Online / RFCs / rfc / rfc1791.txt < prev    next >
Text File  |  1995-05-11  |  22KB  |  676 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                            T. Sung
  8. Request for Comments: 1791                                  Novell, Inc.
  9. Category: Experimental                                        April 1995
  10.  
  11.  
  12.            TCP And UDP Over IPX Networks With Fixed Path MTU
  13.  
  14. Status of this Memo
  15.  
  16.    This document defines an Experimental Protocol for the Internet
  17.    community.  This does not specify an Internet standard of any kind.
  18.    Discussion and suggestions for improvement are requested.
  19.    Distribution of this memo is unlimited.
  20.  
  21. IESG Note:
  22.  
  23.    Internet Engineering Steering Group comment from the Area Director
  24.    for Transport Services: Please note well that this memo is an
  25.    individual product of the author.  Implementation experience,
  26.    particularly on the effectiveness of the protocols in dual-stack
  27.    environments, is needed.
  28.  
  29. 1.  Introduction
  30.  
  31.    Most of network applications run on some sort of transports.  And, if
  32.    one is to let such applications to run over a foreign network
  33.    protocol, the simplest way would be to allow the applications'
  34.    transports to run over that network protocol. For TCP/IP
  35.    applications, that transport is TCP or UDP.  Hence, to let TCP/IP
  36.    applications run over IPX, we would need to  have TCP and UDP run
  37.    over IPX.  And, once TCP and UDP are allowed to run over IPX, all TCP
  38.    and UDP based applications, such as HTTP for WWW, or NFS, can easily
  39.    be made to work over IPX networks.
  40.  
  41.    DLsw is another example of such applications.  As it is a TCP
  42.    application (and TCP requires IP), the administrator is forced to run
  43.    IP on his network in order to support DLsw.  If the site was an IPX
  44.    shop, it means that he now must manage IP protocol/addresses in
  45.    addition to IPX.  If TCP could be made to run on IPX, then he would
  46.    not have to add IP to his repertoire of network protocols to manage.
  47.  
  48.    TCP/IPX allows TCP/IP applications to run over IPX networks by
  49.    letting TCP and UDP run over IPX.  And this memo specifies the packet
  50.    format and operational procedures for running TCP and UDP over IPX.
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Sung                                                            [Page 1]
  59.  
  60. RFC 1791                  TCP And UDP Over IPX                April 1995
  61.  
  62.  
  63. 2.  Running UDP Over IPX
  64.  
  65.    Since UDP datagrams can be up to 64K octets long, and the size of IPX
  66.    packet is limited to that of the path MTU, large UDP datagrams must
  67.    be fragmented.  And, since IPX does not support fragmentation, large
  68.    UDP datagrams must be fragmented before they are passed to IPX.  For
  69.    that purpose, a new protocol called IPXF (IPX Fragmentation layer),
  70.    is invented.  UDP must run on IPXF rather than directly on IPX.  IPXF
  71.    layer is described in section 4.
  72.  
  73.    To IPXF service users, IPXF behaves just like IPX except that IPXF
  74.    accepts datagram larger than the IPX path MTU.  As such, we describe
  75.    UDP in this section as if it is running on IPX.
  76.  
  77.    UDP must send and receive the packets on IPX/IPXF socket 0x9092.
  78.    Though it may be possible to send a packet from sockets other than
  79.    0x9092, such sockets cannot receive UDP datagram destined to a well
  80.    known socket 0x9092.  Hence, the bidirectional communcation may not
  81.    be established if a socket other than 0x9092 is used to send UDP
  82.    datagram.  For that reason.  UDP/IPX does not allow source sockets
  83.    other than 0x9092.  If a datagram with source socket number other
  84.    than 0x9092 is received, UDP/IPX should discard the packet silently.
  85.    (And increment udpInDatagramErr MIB counter if it is instrumented.)
  86.  
  87.    UDP over IPX uses the IPX packet type 4, a normal IPX packet type.
  88.    The IPX packet type has no meaning to TCP/IPX protocol.  It simply is
  89.    a number required by IPX for general IPX packets.
  90.  
  91.    See Appendix B.1 and B.2 for UDP over IPX packet format.
  92.  
  93.    The UDP/IPX checksum uses a pseudo header similar to UDP/IP pseudo
  94.    header.  The only difference is that IP addresses and protocol ID are
  95.    replaced by IPX addresses and socket numbers.
  96.  
  97.    See Appendix B.3 for the UDP/IPX pseudo header format.
  98.  
  99. 3.  Running TCP Over IPX
  100.  
  101.    Unlike UDP, TCP runs directly over IPX. Since IPX does not support
  102.    fragmentation, no TCP segment sent over IPX can be larger than the
  103.    path MTU for the connection.  The discovery of the path MTU is
  104.    outside of scope of this paper.  If the  implementation does not have
  105.    a way to dynamically determine the path MTU for each connection, it
  106.    should at least allow a way to statically configure a reasonable
  107.    value for all connections.  For example, if the internetwork made of
  108.    ethernets only, the user may configure the segment size to be 1470
  109.    including the TCP header.  If the configuration of the segment size
  110.    is not possible, the implementation should assume that the IPX path
  111.  
  112.  
  113.  
  114. Sung                                                            [Page 2]
  115.  
  116. RFC 1791                  TCP And UDP Over IPX                April 1995
  117.  
  118.  
  119.    MTU is 576 octects, and not send any TCP segment larger than 546
  120.    octets including TCP header.  That will result in IPX packet of 576
  121.    octets which is the minimum path MTU for IPX.  The implementation is
  122.    then advised to comunicate the configured/default segment size to the
  123.    peer TCP by exchanging MSS option.
  124.  
  125.    Note that this memo does not preclude the possibility of running TCP
  126.    over IPXF instead of IPX.  Running on IPXF can be done in the same
  127.    manner as running UDP over IPXF.  However, in general, TCP should
  128.    refrain from sending large segments that may result in fragmentation.
  129.    Hence, running TCP over IPXF is not recommended.
  130.  
  131.    The IPX socket number 0x9091 is reserved for the TCP. All TCP packets
  132.    must be sent from and received on the socket 0x9091.  If the received
  133.    TCP/IPX packet has the source IPX socket number other than 0x9091,
  134.    the packet should be discarded silently. (And increment tcpInErrs MIB
  135.    counter if it is instrumented.)
  136.  
  137.    TCP, like UDP, uses IPX packet type 4.  The IPX packet type has no
  138.    meaning to TCP/IPX protocol.  It is packet type required by IPX for
  139.    general IPX packets.
  140.  
  141.    See appendix A.1 for TCP/IPX packet format.
  142.  
  143.    The TCP pseudo header, used in checksuming for TCP over IPX, is
  144.    similar to TCP pseudo header for TCP over IP.  Again, the difference
  145.    is that IPX addresses and IPX socket number are substituted in place
  146.    of IP addresses and IP protocol number.
  147.  
  148.    See Appendix A.2 for the TCP/IPX pseudo header format.
  149.  
  150. 4.  IPXF Layer
  151.  
  152.    A large UDP datagram cannot be sent directly over IPX as IPX does not
  153.    support datagrams larger than the path MTU.  Hence, large UDP
  154.    datagrams must be fragmented before it can be sent over IPX.  To have
  155.    large UDP datagrams fragmented, UDP runs over IPXF layer instead of
  156.    running directly IPX.
  157.  
  158.    IPXF users treats IPXF as if it is IPX layer.  That is, they pass
  159.    datagrams to IPXF specifying the destination IPX address/socket along
  160.    with the packet. They also must set the source socket number of the
  161.    datagram to its actual IPX socket number, as it would when sending
  162.    packets to IPX layer.  (For UDP, both source and destination sockets
  163.    are 0x9092.)
  164.  
  165.    Datagrams passed to IPXF can be upto 64K octets long.
  166.  
  167.  
  168.  
  169.  
  170. Sung                                                            [Page 3]
  171.  
  172. RFC 1791                  TCP And UDP Over IPX                April 1995
  173.  
  174.  
  175.    IPXF fragments a datagram as necessary, prepends each fragment with
  176.    the IPXF header and send them to the IPX socket 0x9093 in the
  177.    destination IPX address.  The actual destination socket number
  178.    (0x9092 for UDP) in the orignal IPX datagram is preserved in IPXF
  179.    header. Refer to Appendix B.2 for UDP/IPXF/IPX packet format.
  180.  
  181.    The largest possible IPX datagram that can be sent over the IPX path
  182.    is limited by the path MTU size.  The mechanism to discover the path
  183.    MTU is outside of the scope of the paper.  If an IPXF implementation
  184.    does not have a mean to determine the path MTU, it should assume that
  185.    the largest IPX packet size is 576. In that case, any UDP datagram
  186.    larger than 546 octects will have to be fragmented.
  187.  
  188.    If the datagram does not require fragmentation, IPXF acts as a null
  189.    layer.  That is, the whole packet is directly sent to the actual IPX
  190.    destination socket without the IPXF fragmentation header.  Refer to
  191.    Appendix B.1 for UDP/IPX packet format without the IPXF header.
  192.  
  193.    An IPXF user receives datagrams by opening a socket with IPXF just as
  194.    it would with IPX.  For example, UDP opens the socket 0x9092 with
  195.    IPXF to receive UDP datagrams.  IPXF, in turn, opens IPX socket of
  196.    the same number with IPX, so that unfragmented packets directed to
  197.    that socket will be delivered by IPX directly to the IPXF user.
  198.  
  199.    IPXF fragments are received by IPXF on the IPX socket 0x9093.  The
  200.    receiving IPXF then reassembles the fragments into a complete IPX
  201.    datagram, restores the actual detination IPX socket number from the
  202.    IPXF header and delivers the reassembled IPX datagram to its actual
  203.    recipient designated by the restored socket number.
  204.  
  205.    Upon receiving a fragment, IPXF must ignore the source socket number
  206.    in the IPX header of the fragment.  The source IPX socket field in
  207.    IPX header contains the actual source of the IPX datagram.  As such,
  208.    the source IPX socket number in IPX header usually is not 0x9093, and
  209.    it is meaningful only to the actual recepient of the assembled
  210.    datagram.
  211.  
  212.    The fragmentation/reassembly algorithm used by IPXF is identical to
  213.    that of IP, except for the following exceptions: 1) the offset of
  214.    fragments are measured in units of octets rather than in units of 8
  215.    octets.  2) if the receiving IPXF does not have sufficient resource
  216.    for the reassembly, it should discard fragments immediately.  The
  217.    receiving IPXF can determine if it has sufficient resources by
  218.    looking at the length of the original datagram included in every
  219.    fragment.
  220.  
  221.    Note that, though it is required only for UDP in this memo, IPXF can
  222.    also be used by any protocol that requires IPX fragmentation support.
  223.  
  224.  
  225.  
  226. Sung                                                            [Page 4]
  227.  
  228. RFC 1791                  TCP And UDP Over IPX                April 1995
  229.  
  230.  
  231. 5.  TCP/IPX Checksuming
  232.  
  233.    TCP/IPX is checksummed in exactly same manner as TCP/IP. It uses 16
  234.    bit 1's complement of 1's compliment sum of all 16 bit words in the
  235.    pseudo header and text.  See Appendix A.2 and B.3 for the pseudo
  236.    header format for TCP and UDP.
  237.  
  238. 6.  Multiplexing
  239.  
  240.    TCP and UDP data over IPX are delivered to the application in the
  241.    same manner as in TCP/IP.  That is, they are delivered to the most
  242.    specific matching endpoint, with the match made on local port, remote
  243.    port, local IPX address and remote IPX address.
  244.  
  245.    When TCP or UDP is running over both IPX and IP, the connection
  246.    endpoint also identifies the network layer on which the endpoint is.
  247.    Hence, the triplet of network address, network address family, and
  248.    the port number forms the socket.  And, the endpoint match must be
  249.    made on the the network address familty as well.
  250.  
  251.    For exmple, an endpoint bound to IPX network layer would be
  252.    identified by AF_IPX, IPX address and TCP port number.  On the other
  253.    hand, endpoints bound to IP network layer would be identified by
  254.    AF_IP, IP address, and TCP port.  Finally, endpoints not bound to any
  255.    network layer would be identified by AF_UNSPEC and TCP port.
  256.  
  257.    First, an attempt is made to deliver the data to the most specific
  258.    endpoint that is bound to the network layer that the packet arrived
  259.    from.  If there is no such endpoint,  then the packet is delivered to
  260.    the best matching endpoint that is not bound to any network layer at
  261.    all.  For example, if the packet arrived over IPX network, then the
  262.    packet is delivered to the most specific matching endpoint that is
  263.    bound to IPX. If there is no matching endpoint over IPX, then it is
  264.    delivered to an endpoint that did not specify any network layer.
  265.  
  266.    The use of endpoints not bound to any network layer is similar to
  267.    TCP/IP endpoints with no IP address bound to it.  Such endpoints are
  268.    usually used for listening for connection requests from any of the
  269.    interfaces within the host.  Similarly, endpoints with no network
  270.    layer bound to it are used to field the connection requests from any
  271.    of the network layers.
  272.  
  273. Acknowledgement
  274.  
  275.    The author wishes to thank following folks, in alphabetical order,
  276.    and others for their helpful comments and contributions to the work:
  277.    Lester Bird, Doug Kogan, Greg Minshall and Don Provan.
  278.  
  279.  
  280.  
  281.  
  282. Sung                                                            [Page 5]
  283.  
  284. RFC 1791                  TCP And UDP Over IPX                April 1995
  285.  
  286.  
  287. Security Considerations
  288.  
  289.    Security issues are not discussed in this memo.
  290.  
  291. Author's Address
  292.  
  293.    Tae Sung
  294.    Novell, Inc.
  295.    2180 Fortune Drive
  296.    San Jose, California, 95131
  297.  
  298.    Phone: (408)577-8439
  299.    EMail: tae@novell.Com
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Sung                                                            [Page 6]
  339.  
  340. RFC 1791                  TCP And UDP Over IPX                April 1995
  341.  
  342.  
  343. Appendix A.1 -  TCP/IPX Packet Format
  344.  
  345.    A TCP/IPX Packet has following format:
  346.  
  347.           +-------+-------+-------+-------+
  348.           | IPX Checksum  | IPX Pkt Len   |
  349.           +-------+-------+-------+-------+
  350.           | Zero  |IPX PT | IPX Dest -
  351.           +-------+-------+-------+-------+
  352.             Network | IPX Dest -
  353.           +-------+-------+-------+-------+
  354.             Node                          |
  355.           +-------+-------+-------+-------+
  356.           | IPX Dest Skt  | IPX Src -
  357.           +-------+-------+-------+-------+
  358.             Network       | IPX Src -
  359.           +-------+-------+-------+-------+
  360.             Node                          |
  361.           +-------+-------+-------+-------+
  362.           | IPX Src Skt   | TCP Header and
  363.           +---------------+-------+-------+
  364.             Data...
  365.           +----...
  366.  
  367.    IPX PT field contains the IPX packet type.  It is set to 4 for
  368.    TCP/IPX packet.
  369.  
  370.    Both Src Skt and Dest Skt field in IPX header must be set to 0x9091
  371.    for TCP/IPX packet.  If the Src Skt is not set to 0x9091, the
  372.    receiving TCP/IPX should discard the packet silently.  (And increment
  373.    tcpInErrs mib object if it is instrumented.)
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Sung                                                            [Page 7]
  395.  
  396. RFC 1791                  TCP And UDP Over IPX                April 1995
  397.  
  398.  
  399. Appendix A.2 -  TCP/IPX Pseudo Header Format
  400.  
  401.    TCP/IPX uses following pseudo header to compute checksum:
  402.  
  403.              +-------+-------+-------+-------+
  404.              | IPX Src Network               |
  405.              +-------+-------+-------+-------+
  406.              | IPX Src Node
  407.              +-------+-------+-------+-------+
  408.                              | IPX Src Skt   |
  409.              +-------+-------+-------+-------+
  410.              | IPX Dest Network              |
  411.              +-------+-------+-------+-------+
  412.              | IPX Dest Node
  413.              +-------+-------+-------+-------+
  414.                              | IPX Dest Skt  |
  415.              +-------+-------+-------+-------+
  416.              | Zero          | TCP Length    |
  417.              +---------------+---------------+
  418.  
  419.    IPX Src/Dest Network/Node/Skt are the fields from the IPX header.
  420.    TCP Length is the IPX Pkt Len minus the IPX header length in octets.
  421.  
  422.    Note that IPX Src Skt is expected to be 0x9091 for TCP.  As such, one
  423.    may insert 0x9091 in IPX Src Skt field rather than getting the value
  424.    from IPX header.  Then the implementation will not have to check the
  425.    IPX Src Skt field in the fast path since the checksum failure will
  426.    also cover the unexpected value.  In that case, the implementation
  427.    may want to examine if the checksum failure was due to the IPX Src
  428.    Skt value other than 0x9091, so that it can increment appropriate
  429.    counter, if proprietary counters other than tcpInErrs are used.
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Sung                                                            [Page 8]
  451.  
  452. RFC 1791                  TCP And UDP Over IPX                April 1995
  453.  
  454.  
  455. Appendix B.1 -  UDP/IPX Packet Format without Fragmentation
  456.  
  457.    IPXF transmits UDP packets over IPX in this format if the UDP
  458.    datagram does not have to be fragmented:
  459.  
  460.              +-------+-------+-------+-------+
  461.              | IPX Checksum  | IPX Pkt Len   |
  462.              +-------+-------+-------+-------+
  463.              | Zero  |IPX PT | IPX Dest -
  464.              +-------+-------+-------+-------+
  465.                Network       | IPX Dest -
  466.              +-------+-------+-------+-------+
  467.                Node                          |
  468.              +-------+-------+-------+-------+
  469.              | IPX Dest Skt  | IPX Src -
  470.              +-------+-------+-------+-------+
  471.                Network       | IPX Src -
  472.              +-------+-------+-------+-------+
  473.                Node                          |
  474.              +-------+-------+-------+-------+
  475.              | IPX Src Skt   | UDP Header and
  476.              +---------------+-------+-------+
  477.                Data...
  478.              +----...
  479.  
  480.    The IPX PT field contains IPX packet type.  It should be set to 4 for
  481.    all UDP/IPX packets.
  482.  
  483.    Both IPX Src Skt and IPX Dest Skt field must be set 0x9092.  The
  484.    receiving UDP/IPX should discard the packet silently if the IPX Src
  485.    Skt field is not set to 0x9092.  (And increment udpInErrors mib
  486.    object if it is instrumented.)
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Sung                                                            [Page 9]
  507.  
  508. RFC 1791                  TCP And UDP Over IPX                April 1995
  509.  
  510.  
  511. Appendix B.2 -  UDP/IPX Packet Format With Fragmentation
  512.  
  513.    IPXF transmits fragmented datagrams over IPX in the following format:
  514.  
  515.              +-------+-------+-------+-------+
  516.              | IPX Checksum  | IPX Pkt Len   |
  517.              +-------+-------+-------+-------+
  518.              | Zero  |IPX PT | IPX Dest -
  519.              +-------+-------+-------+-------+
  520.                Network       | IPX Dest -
  521.              +-------+-------+-------+-------+
  522.                Node                          |
  523.              +-------+-------+-------+-------+
  524.                IPX Dest Skt   | IPX Src -
  525.              +-------+-------+-------+-------+
  526.                Network       | IPX Src -
  527.              +-------+-------+-------+-------+
  528.                Node                          |
  529.              +-------+-------+-------+-------+
  530.              | IPX Src Skt   | IPXF Offset   |
  531.              +---------------+-------+-------+
  532.              | IPXF Frag Identification      |
  533.              +-------------------------------+
  534.              | IPXF Dest Skt | IPXF DG Len   |
  535.              +-------------------------------+
  536.              | UDP Header and Data ...
  537.              +--------...
  538.  
  539.    The IPX PT field contains IPX packet type.  It is set to the value
  540.    set by the IPXF user in the IPX packet passed to IPXF. (UDP sets it
  541.    to 4.)
  542.  
  543.    IPX Dest Skt field must be set to 0x9093 for all IPXF Packets.
  544.  
  545.    The value for IPX Src Skt field is variable, and must be set to the
  546.    actual IPX socket number of the IPXF user.  (For example, it must be
  547.    set to 0x9092 for UDP.)
  548.  
  549.    IPXF Offset field indicates where the fragment belongs in the
  550.    datagram.  The offset is measured is octet from the begining of the
  551.    UDP datagram.  The first fragment has the offset of 0.
  552.  
  553.    IPXF Frag Identification field is assigned a same value by the sender
  554.    for all fragements belonging to the same datagram.  The receiver then
  555.    uses this field to reassemble all fragments with same ID into a
  556.    datagram.
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Sung                                                           [Page 10]
  563.  
  564. RFC 1791                  TCP And UDP Over IPX                April 1995
  565.  
  566.  
  567.    IPXF Dest Skt field contains the IPX socket number of the actual
  568.    recipient that the reassembled datagram will be delivered to.  (It is
  569.    0x9092 for UDP.)  All fragments of a datagram must have the same
  570.    value in this field.
  571.  
  572.    IPXF DG Len field is the total length of the IPX datagram before the
  573.    fragmentation.  The sender should set it to the value of IPX Pkt Len
  574.    of the original IPX datagram.  All fragments of a IPX datagram must
  575.    have the same value in this field.
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Sung                                                           [Page 11]
  619.  
  620. RFC 1791                  TCP And UDP Over IPX                April 1995
  621.  
  622.  
  623. Appendix B.3 -  UDP/IPX Pseudo Header Format
  624.  
  625.    UDP/IPX uses following pseudo header for computing the checksum:
  626.  
  627.              +-------+-------+-------+-------+
  628.              | IPX Src Network               |
  629.              +-------+-------+-------+-------+
  630.              | IPX Src Node
  631.              +-------+-------+-------+-------+
  632.                              | IPX Src Skt   |
  633.              +-------+-------+-------+-------+
  634.              | IPX Dest Network              |
  635.              +-------+-------+-------+-------+
  636.              | IPX Dest Node
  637.              +-------+-------+-------+-------+
  638.                              | IPX Dest Skt  |
  639.              +-------+-------+-------+-------+
  640.              | Zero          | UDP Length    |
  641.              +---------------+---------------+
  642.  
  643.    IPX Src/Dest Network/Node/Skt fields are from the IPX packet.  Note
  644.    that, if UDP is running over IPXF, the IPX Dest Skt field in IPX
  645.    packet header is copied over from IPXF header before the reassembled
  646.    IPX packet is delivered to UDP,  Hence, the pseudo header must be
  647.    derived from the reassembled IPX header.
  648.  
  649.    UDP Length is from UDP header.
  650.  
  651.    Note that IPX Src Skt is expected to be 0x9092 for UDP.  As such, one
  652.    may insert 0x9092 in IPX Src Skt field rather than getting the value
  653.    from IPX header.  Then the implementation will not have to check the
  654.    IPX Src Skt field in the fast path since the checksum failure will
  655.    also cover the unexpected value.  In that case, the implementation
  656.    may want to examine if the checksum failure was due to the IPX Src
  657.    Skt value other than 0x9092, so that it can increment appropriate
  658.    counter, if proprietary counters other than udpInDatagramErr are
  659.    Datagr
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Sung                                                           [Page 12]
  675.  
  676.